'''
递归解决阶乘
10! = 10 * 9!   # 10的阶乘其实可以看做是10 * 9的阶乘
9! = 9 * 8!     # 9的阶乘可以看做是9 * 8的阶乘
8! = 8 * 7!
...
2! = 2 * 1!
1! = 1
'''
'''
     递归：只是解决问题的一种方式，不一定非要用 
     递归式函数：就是函数自己调用自己 
     递归的2个条件：基线条件（满足则不再递归）、递归条件（满足则基线递归） 
     递归跟循环类似：基本可以互相替代 循环编写起来比较容易，阅读起来比较难。递归编写起来比较难，但是阅读容易
'''
def factorial(n):
    # 基线条件，当满足时，则不再递归
    if n == 1:
        return 1

    # 递归条件，当n不等于1时，继续递归
    return n * factorial(n - 1)

if __name__ == '__main__':
    print(factorial(10))